/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package testsfonctions;

import java.awt.Point;
import java.awt.Toolkit;

/**
 *
 * @author OUWAIS
 */
public class VueAeroport {

    public VueAeroport() {
    }
    
    //Mode d'emploi: Fonction qui renvoie le nombre de pixels par mètre de 'écran
    //d'affichage.
    //Entrées:Null
    //Sortie:nombre de pixels par mètres.
    //Erreur:Null
    public int getDpiEcranParMetre(){
        int screenDpi = Toolkit.getDefaultToolkit().getScreenResolution();
        return screenDpi * (10000/254);
    }

    //Mode d'emploi: Fonction qui renvoie le nombre de pixels dans l'écran correspondant
    //à la longeur à convertir.
    //Entrées:double longeur: longueur en mètre à convertir en pixels
    //Sortie:nombre de pixels par mètres correpondant à la longeur passée en paramètre.
    //Erreur:Null
    public int getPixels(double longeur){
        int screenDpi = getDpiEcranParMetre();
        return (int) (screenDpi * longeur);
    }

    //Mode d'emploi: Fonction qui convertit en pixels et réduit à l'échelle
    //une longueur en mètre.
    //Entrées:
    //double distMetreAConvertir: distance en mètre à convertir
    //double distPlanMaxMetre: distance référence en mètre
    //int distFrameMaxPixels: distance en pixels équivalente à la distance de référence en mètre
    //Sortie:nombre de pixels correspondant.
    //Erreur:Null
    public int convertDistMetreToPixels(double distMetreAConvertir,
                        double distPlanMaxMetre,int distFrameMaxPixels){
        int LongMaxPix = getPixels(distPlanMaxMetre);
        int LongdistAConvPix = getPixels(distMetreAConvertir);
        return LongdistAConvPix * distFrameMaxPixels/LongMaxPix;
    }

    //Mode d'emploi: Fonction qui convertit et réduit à l'échelle les coordonnées d'un point du mètre aux pixels.
    //Entrées:
    //double x: coordonnée du point sur l'axe des abscisses
    //double y: coordonnée du point sur l'axe des ordonnées
    //double longPlanMaxMetre: longueur référence en mètre
    //double hautPlanMaxMetre: hauteur référence en mètre
    //int longFrameMaxPixels: longueur référence en pixels
    //int hautFrameMaxPixels: hauteur référence en pixels
    //Sortie:Point coordPixels: objet de type Point contenant les coordonnées.
    //Erreur:Null
    public Point convertCoordonnesToPixels(double x, double y,
                        double longPlanMaxMetre,double hautPlanMaxMetre,
                        int longFrameMaxPixels, int hautFrameMaxPixels){
        Point coordPixels = new Point(this.convertDistMetreToPixels(x,
                longPlanMaxMetre,longFrameMaxPixels),
                this.convertDistMetreToPixels(y,hautPlanMaxMetre,hautFrameMaxPixels));
        return coordPixels;
    }
}

